home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / ccs / ccs-11tl.lha / lbl / xview / segal / mask_grow_stubs.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-22  |  31.3 KB  |  1,505 lines

  1. /*
  2.  * mask_grow_stubs.c - Notify and event callback function stubs.
  3.  * This file was generated by `gxv' from `mask_grow.G'.
  4.  */
  5.  
  6. #include "common.h"
  7. #include <stdio.h>
  8. #include <sys/param.h>
  9. #include <sys/types.h>
  10. #include <xview/xview.h>
  11. #include <xview/panel.h>
  12. #include <xview/textsw.h>
  13. #include <xview/xv_xrect.h>
  14. #include "segal.h"
  15.  
  16. /*
  17.  * Notify callback function for `grow_threshold_high'.
  18.  */
  19. void
  20. set_grow_threshold_high(item, value, event)
  21.     Panel_item    item;
  22.     int        value;
  23.     Event        *event;
  24. {
  25.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  26.     
  27.     
  28.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  29.     /* gxv_end_connections */
  30.  
  31. }
  32.  
  33. /*
  34.  * Notify callback function for `grow_threshold_low'.
  35.  */
  36. void
  37. set_grow_threshold_low(item, value, event)
  38.     Panel_item    item;
  39.     int        value;
  40.     Event        *event;
  41. {
  42.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  43.     
  44.     
  45.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  46.     /* gxv_end_connections */
  47.  
  48. }
  49.  
  50. /*
  51.  * Notify callback function for `set_max_gradient'.
  52.  */
  53. void
  54. set_grow_gradient(item, value, event)
  55.     Panel_item    item;
  56.     int        value;
  57.     Event        *event;
  58. {
  59.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  60.     
  61.     
  62.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  63.     /* gxv_end_connections */
  64.  
  65. }
  66.  
  67. /*
  68.  * Notify callback function for `set_region'.
  69.  */
  70. void
  71. draw_hints_grow_region(item, value, event)
  72.     Panel_item    item;
  73.     int        value;
  74.     Event        *event;
  75. {
  76.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  77.     
  78.     
  79.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  80.     /* gxv_end_connections */
  81.  
  82. }
  83.  
  84. /*
  85.  * Event callback function for `but_stop'.
  86.  */
  87. void
  88. grow_stop_proc(item, event)
  89.     Panel_item    item;
  90.     Event        *event;
  91. {
  92.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  93.     
  94.     
  95.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  96.     /* gxv_end_connections */
  97.  
  98.     panel_default_handle_event(item, event);
  99. }
  100.  
  101. /*
  102.  * Notify callback function for `but_options'.
  103.  */
  104. void
  105. mask_grow_pop_mask_grow_but_options_notify_callback(item, event)
  106.     Panel_item    item;
  107.     Event        *event;
  108. {
  109.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  110.     
  111.     
  112.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  113.  
  114.     xv_set(Mask_grow_pop_options->pop_options, FRAME_CMD_PUSHPIN_IN, TRUE, NULL);
  115.     xv_set(Mask_grow_pop_options->pop_options, XV_SHOW, TRUE, NULL);
  116.     
  117.     /* gxv_end_connections */
  118.  
  119. }
  120.  
  121. /*
  122.  * Notify callback function for `but_close_grow'.
  123.  */
  124. void
  125. mask_grow_pop_mask_grow_but_close_grow_notify_callback(item, event)
  126.     Panel_item    item;
  127.     Event        *event;
  128. {
  129.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  130.     
  131.     
  132.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  133.  
  134.     xv_set(Mask_grow_pop_mask_grow->pop_mask_grow, FRAME_CMD_PUSHPIN_IN, FALSE, NULL);
  135.     xv_set(Mask_grow_pop_mask_grow->pop_mask_grow, XV_SHOW, FALSE, NULL);
  136.     
  137.     {
  138.         if(!grow.stack_empty) redisplay_all();
  139.     }
  140.     
  141.     xv_set(Mask_grow_pop_options->pop_options, FRAME_CMD_PUSHPIN_IN, FALSE, NULL);
  142.     xv_set(Mask_grow_pop_options->pop_options, XV_SHOW, FALSE, NULL);
  143.     
  144.     /* gxv_end_connections */
  145.  
  146. }
  147.  
  148. /*
  149.  * Notify callback function for `but_close_options'.
  150.  */
  151. void
  152. mask_grow_pop_options_but_close_options_notify_callback(item, event)
  153.     Panel_item    item;
  154.     Event        *event;
  155. {
  156.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  157.     
  158.     
  159.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  160.  
  161.     xv_set(Mask_grow_pop_options->pop_options, FRAME_CMD_PUSHPIN_IN, FALSE, NULL);
  162.     xv_set(Mask_grow_pop_options->pop_options, XV_SHOW, FALSE, NULL);
  163.     
  164.     /* gxv_end_connections */
  165.  
  166. }
  167.  
  168. /*
  169.  * Notify callback function for `set_region'.
  170.  */
  171. void
  172. mask_grow_pop_mask_grow_set_region_notify_callback(item, value, event)
  173.     Panel_item    item;
  174.     int        value;
  175.     Event        *event;
  176. {
  177.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  178.     
  179.     
  180.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  181.     /* gxv_end_connections */
  182.  
  183. }
  184.  
  185. /*
  186.  * Event callback function for `but_stop'.
  187.  */
  188. void
  189. mask_grow_pop_mask_grow_but_stop_event_callback(item, event)
  190.     Panel_item    item;
  191.     Event        *event;
  192. {
  193.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  194.     
  195.     
  196.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  197.     /* gxv_end_connections */
  198.  
  199.     panel_default_handle_event(item, event);
  200. }
  201.  
  202. /*
  203.  * Notify callback function for `set_seed_points_source'.
  204.  */
  205. void
  206. mask_grow_pop_options_set_seed_points_source_notify_callback(item, value, event)
  207.     Panel_item    item;
  208.     int        value;
  209.     Event        *event;
  210. {
  211.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  212.     
  213.     
  214.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  215.  
  216.     if (value == 2)
  217.     {
  218.         grow.seed_pt_src = SEED_ROI;
  219.     }
  220.     
  221.     if (value == 0)
  222.     {
  223.         grow.seed_pt_src = SEED_EDIT;
  224.     }
  225.     
  226.     if (value == 1)
  227.     {
  228.         grow.seed_pt_src = SEED_PTS;
  229.     }
  230.     
  231.     /* gxv_end_connections */
  232.  
  233. }
  234.  
  235. /*
  236.  * Notify callback function for `set_3d_extent'.
  237.  */
  238. void
  239. mask_grow_pop_options_set_3d_extent_notify_callback(item, value, event)
  240.     Panel_item    item;
  241.     int        value;
  242.     Event        *event;
  243. {
  244.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  245.     
  246.     
  247.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  248.     /* gxv_end_connections */
  249.  
  250. }
  251.  
  252. /*
  253.  * Notify callback function for `set_starting_window'.
  254.  */
  255. void
  256. mask_grow_pop_options_set_starting_window_notify_callback(item, value, event)
  257.     Panel_item    item;
  258.     int        value;
  259.     Event        *event;
  260. {
  261.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  262.     
  263.     
  264.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  265.  
  266.     if (value == 0)
  267.     {
  268.         grow.swin = WIN_PAINT;
  269.     }
  270.     
  271.     if (value == 1)
  272.     {
  273.         grow.swin = WIN_VX;
  274.     }
  275.     
  276.     if (value == 2)
  277.     {
  278.         grow.swin = WIN_VY;
  279.     }
  280.     
  281.     if (value == 3)
  282.     {
  283.         grow.swin = WIN_VZ;
  284.     }
  285.     
  286.     /* gxv_end_connections */
  287.  
  288. }
  289.  
  290. /*
  291.  * Notify callback function for `set_matrix_type'.
  292.  */
  293. void
  294. mask_grow_pop_options_set_matrix_type_notify_callback(item, value, event)
  295.     Panel_item    item;
  296.     int        value;
  297.     Event        *event;
  298. {
  299.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  300.     
  301.     
  302.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  303.     /* gxv_end_connections */
  304.  
  305. }
  306.  
  307. /*
  308.  * Notify callback function for `set_matrix_size'.
  309.  */
  310. void
  311. mask_grow_pop_options_set_matrix_size_notify_callback(item, value, event)
  312.     Panel_item    item;
  313.     int        value;
  314.     Event        *event;
  315. {
  316.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  317.     
  318.     
  319.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  320.     /* gxv_end_connections */
  321.  
  322. }
  323.  
  324. /*
  325.  * Notify callback function for `set_overwrite'.
  326.  */
  327. void
  328. mask_grow_pop_options_set_overwrite_notify_callback(item, value, event)
  329.     Panel_item    item;
  330.     int        value;
  331.     Event        *event;
  332. {
  333.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  334.     
  335.     
  336.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  337.  
  338.     if (value == 0)
  339.     {
  340.         grow.overwrite = TRUE;
  341.     }
  342.     
  343.     if (value == 1)
  344.     {
  345.         grow.overwrite = FALSE;
  346.     }
  347.     
  348.     /* gxv_end_connections */
  349.  
  350. }
  351.  
  352. /*
  353.  * Notify callback function for `set_display_growth'.
  354.  */
  355. void
  356. mask_grow_pop_options_set_display_growth_notify_callback(item, value, event)
  357.     Panel_item    item;
  358.     int        value;
  359.     Event        *event;
  360. {
  361.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  362.     
  363.     
  364.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  365.  
  366.     if (value == 0)
  367.     {
  368.         grow.disp_growth = DISP_ALL;
  369.     }
  370.     
  371.     if (value == 1)
  372.     {
  373.         grow.disp_growth = DISP_GROW;
  374.     }
  375.     
  376.     if (value == 2)
  377.     {
  378.         grow.disp_growth = DISP_WHEN_DONE;
  379.     }
  380.     
  381.     /* gxv_end_connections */
  382.  
  383. }
  384.  
  385. /*
  386.  * Notify callback function for `but_grow_mask'.
  387.  */
  388. void
  389. mask_grow_pop_mask_grow_but_grow_mask_notify_callback(item, event)
  390.     Panel_item    item;
  391.     Event        *event;
  392. {
  393.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  394.     
  395.     
  396.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  397.     /* gxv_end_connections */
  398.  
  399. }
  400.  
  401. /*
  402.  * Notify callback function for `grow_threshold_high'.
  403.  */
  404. void
  405. mask_grow_pop_mask_grow_grow_threshold_high_notify_callback(item, value, event)
  406.     Panel_item    item;
  407.     int        value;
  408.     Event        *event;
  409. {
  410.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  411.     
  412.     
  413.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  414.     /* gxv_end_connections */
  415.  
  416. }
  417.  
  418. /*
  419.  * Notify callback function for `grow_threshold_low'.
  420.  */
  421. void
  422. mask_grow_pop_mask_grow_grow_threshold_low_notify_callback(item, value, event)
  423.     Panel_item    item;
  424.     int        value;
  425.     Event        *event;
  426. {
  427.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  428.     
  429.     
  430.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  431.     /* gxv_end_connections */
  432.  
  433. }
  434.  
  435. /*
  436.  * Notify callback function for `set_max_gradient'.
  437.  */
  438. void
  439. mask_grow_pop_mask_grow_set_max_gradient_notify_callback(item, value, event)
  440.     Panel_item    item;
  441.     int        value;
  442.     Event        *event;
  443. {
  444.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  445.     
  446.     
  447.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  448.     /* gxv_end_connections */
  449.  
  450. }
  451.  
  452. /*
  453.  * Notify callback function for `set_apply_threshold_values'.
  454.  */
  455. void
  456. mask_grow_pop_mask_grow_set_apply_threshold_values_notify_callback(item, value, event)
  457.     Panel_item    item;
  458.     int        value;
  459.     Event        *event;
  460. {
  461.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  462.     short    i;
  463.     
  464.     for (i = 0; i < 1; i++) {
  465.         
  466.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  467.         /* gxv_end_connections */
  468.  
  469.         value >>= 1;
  470.     }
  471. }
  472.  
  473. /*
  474.  * Notify callback function for `set_apply_max_gradient'.
  475.  */
  476. void
  477. mask_grow_pop_mask_grow_set_apply_max_gradient_notify_callback(item, value, event)
  478.     Panel_item    item;
  479.     int        value;
  480.     Event        *event;
  481. {
  482.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  483.     short    i;
  484.     
  485.     for (i = 0; i < 1; i++) {
  486.         
  487.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  488.         /* gxv_end_connections */
  489.  
  490.         value >>= 1;
  491.     }
  492. }
  493.  
  494. /*
  495.  * Notify callback function for `beg_frame'.
  496.  */
  497. Panel_setting
  498. mask_grow_pop_mask_grow_beg_frame_notify_callback(item, event)
  499.     Panel_item    item;
  500.     Event        *event;
  501. {
  502.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  503.     int    value = (int) xv_get(item, PANEL_VALUE);
  504.     
  505.     
  506.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  507.  
  508.     {
  509.         region.beg_frame = value;
  510.         region.end_frame = value;
  511.         xv_set(Mask_grow_pop_mask_grow->end_frame,
  512.             PANEL_VALUE, value,
  513.             NULL);
  514.     }
  515.     
  516.     /* gxv_end_connections */
  517.  
  518.     return panel_text_notify(item, event);
  519. }
  520.  
  521. /*
  522.  * Notify callback function for `end_frame'.
  523.  */
  524. Panel_setting
  525. mask_grow_pop_mask_grow_end_frame_notify_callback(item, event)
  526.     Panel_item    item;
  527.     Event        *event;
  528. {
  529.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  530.     int    value = (int) xv_get(item, PANEL_VALUE);
  531.     
  532.     
  533.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  534.  
  535.     {
  536.         region.end_frame = value;
  537.     }
  538.     
  539.     /* gxv_end_connections */
  540.  
  541.     return panel_text_notify(item, event);
  542. }
  543.  
  544. /*
  545.  * Notify callback function for `but_defaults'.
  546.  */
  547. void
  548. mask_grow_pop_options_but_defaults_notify_callback(item, event)
  549.     Panel_item    item;
  550.     Event        *event;
  551. {
  552.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  553.     
  554.     
  555.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  556.     /* gxv_end_connections */
  557.  
  558. }
  559.  
  560. /*
  561.  * Notify callback function for `but_shrink_mask'.
  562.  */
  563. void
  564. mask_grow_pop_mask_grow_but_shrink_mask_notify_callback(item, event)
  565.     Panel_item    item;
  566.     Event        *event;
  567. {
  568.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  569.     
  570.     
  571.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  572.     /* gxv_end_connections */
  573.  
  574. }
  575.  
  576. /*
  577.  * Notify callback function for `set_apply_min_bridge'.
  578.  */
  579. void
  580. mask_grow_pop_mask_grow_set_apply_min_bridge_notify_callback(item, value, event)
  581.     Panel_item    item;
  582.     int        value;
  583.     Event        *event;
  584. {
  585.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  586.     short    i;
  587.     
  588.     for (i = 0; i < 1; i++) {
  589.         
  590.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  591.         /* gxv_end_connections */
  592.  
  593.         value >>= 1;
  594.     }
  595. }
  596.  
  597. /*
  598.  * Notify callback function for `set_bridge_type'.
  599.  */
  600. void
  601. mask_grow_pop_options_set_bridge_type_notify_callback(item, value, event)
  602.     Panel_item    item;
  603.     int        value;
  604.     Event        *event;
  605. {
  606.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  607.     
  608.     
  609.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  610.     /* gxv_end_connections */
  611.  
  612. }
  613.  
  614. /*
  615.  * Notify callback function for `set_bridge_strength'.
  616.  */
  617. void
  618. mask_grow_pop_options_set_bridge_strength_notify_callback(item, value, event)
  619.     Panel_item    item;
  620.     int        value;
  621.     Event        *event;
  622. {
  623.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  624.     
  625.     
  626.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  627.     /* gxv_end_connections */
  628.  
  629. }
  630.  
  631. /*
  632.  * Notify callback function for `set_min_bridge'.
  633.  */
  634. void
  635. mask_grow_pop_mask_grow_set_min_bridge_notify_callback(item, value, event)
  636.     Panel_item    item;
  637.     int        value;
  638.     Event        *event;
  639. {
  640.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  641.     
  642.     
  643.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  644.     /* gxv_end_connections */
  645.  
  646. }
  647.  
  648. /*
  649.  * Notify callback function for `but_grow'.
  650.  */
  651. void
  652. mask_grow_pop_mask_grow_but_grow_notify_callback(item, event)
  653.     Panel_item    item;
  654.     Event        *event;
  655. {
  656.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  657.     
  658.     
  659.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  660.  
  661.     {
  662.         grow.direction = DIR_GROW;
  663.         grow_mask();
  664.     }
  665.     
  666.     xv_set(Mask_grow_pop_mask_grow->but_stop, PANEL_INACTIVE, FALSE, NULL);
  667.     
  668.     xv_set(Mask_grow_pop_mask_grow->but_continue, PANEL_INACTIVE, TRUE, NULL);
  669.     
  670.     xv_set(Mask_grow_pop_mask_grow->but_undo, PANEL_INACTIVE, FALSE, NULL);
  671.     
  672.     /* gxv_end_connections */
  673.  
  674. }
  675.  
  676. /*
  677.  * Notify callback function for `but_shrink'.
  678.  */
  679. void
  680. mask_grow_pop_mask_grow_but_shrink_notify_callback(item, event)
  681.     Panel_item    item;
  682.     Event        *event;
  683. {
  684.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  685.     
  686.     
  687.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  688.  
  689.     {
  690.         grow.direction = DIR_SHRINK;
  691.         grow_mask();
  692.     }
  693.     
  694.     xv_set(Mask_grow_pop_mask_grow->but_stop, PANEL_INACTIVE, FALSE, NULL);
  695.     
  696.     xv_set(Mask_grow_pop_mask_grow->but_continue, PANEL_INACTIVE, TRUE, NULL);
  697.     
  698.     xv_set(Mask_grow_pop_mask_grow->but_undo, PANEL_INACTIVE, FALSE, NULL);
  699.     
  700.     /* gxv_end_connections */
  701.  
  702. }
  703.  
  704. /*
  705.  * Notify callback function for `but_stop'.
  706.  */
  707. void
  708. mask_grow_pop_mask_grow_but_stop_notify_callback(item, event)
  709.     Panel_item    item;
  710.     Event        *event;
  711. {
  712.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  713.     
  714.     
  715.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  716.  
  717.     xv_set(Mask_grow_pop_mask_grow->but_stop, PANEL_INACTIVE, TRUE, NULL);
  718.     
  719.     {
  720.         notify_set_itimer_func(Mask_grow_pop_mask_grow->pop_mask_grow,
  721.             NOTIFY_FUNC_NULL, ITIMER_REAL, NULL, NULL);
  722.     }
  723.     
  724.     xv_set(Mask_grow_pop_mask_grow->but_continue, PANEL_INACTIVE, FALSE, NULL);
  725.     
  726.     /* gxv_end_connections */
  727.  
  728. }
  729.  
  730. /*
  731.  * Notify callback function for `but_continue'.
  732.  */
  733. void
  734. mask_grow_pop_mask_grow_but_continue_notify_callback(item, event)
  735.     Panel_item    item;
  736.     Event        *event;
  737. {
  738.     Notify_value grow_edges();
  739.  
  740.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  741.     
  742.     
  743.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  744.  
  745.     xv_set(Mask_grow_pop_mask_grow->but_stop, PANEL_INACTIVE, FALSE, NULL);
  746.     
  747.     xv_set(Mask_grow_pop_mask_grow->but_continue, PANEL_INACTIVE, TRUE, NULL);
  748.     
  749.     {
  750.         go_grow_edges();
  751.     }
  752.     
  753.     /* gxv_end_connections */
  754.  
  755. }
  756.  
  757. /*
  758.  * Notify callback function for `set_delay_useconds'.
  759.  */
  760. void
  761. mask_grow_pop_options_set_delay_useconds_notify_callback(item, value, event)
  762.     Panel_item    item;
  763.     int        value;
  764.     Event        *event;
  765. {
  766.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  767.     
  768.     
  769.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  770.     /* gxv_end_connections */
  771.  
  772. }
  773.  
  774. /*
  775.  * Notify callback function for `set_speed'.
  776.  */
  777. void
  778. mask_grow_pop_options_set_speed_notify_callback(item, value, event)
  779.     Panel_item    item;
  780.     int        value;
  781.     Event        *event;
  782. {
  783.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  784.     
  785.     
  786.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  787.     /* gxv_end_connections */
  788.  
  789. }
  790.  
  791. /*
  792.  * Notify callback function for `set_growth_speed'.
  793.  */
  794. void
  795. mask_grow_pop_options_set_growth_speed_notify_callback(item, value, event)
  796.     Panel_item    item;
  797.     int        value;
  798.     Event        *event;
  799. {
  800.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  801.     
  802.     
  803.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  804.  
  805.     {
  806.         grow.speed = value;
  807.     }
  808.     
  809.     /* gxv_end_connections */
  810.  
  811. }
  812.  
  813. /*
  814.  * Notify callback function for `but_undo'.
  815.  */
  816. void
  817. mask_grow_pop_mask_grow_but_undo_notify_callback(item, event)
  818.     Panel_item    item;
  819.     Event        *event;
  820. {
  821.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  822.     
  823.     
  824.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  825.  
  826.     xv_set(Mask_grow_pop_mask_grow->but_stop, PANEL_INACTIVE, TRUE, NULL);
  827.     
  828.     xv_set(Mask_grow_pop_mask_grow->but_continue, PANEL_INACTIVE, TRUE, NULL);
  829.     
  830.     xv_set(Mask_grow_pop_mask_grow->but_undo, PANEL_INACTIVE, TRUE, NULL);
  831.     
  832.     {
  833.         if(grow.extent == GROW_FRAME) load_mask_undo_2d(grow.swin);
  834.         else load_mask_undo_3d(segal.e_m);
  835.     }
  836.     
  837.     /* gxv_end_connections */
  838.  
  839. }
  840.  
  841. /*
  842.  * Notify callback function for `set_apply_threshold'.
  843.  */
  844. void
  845. mask_grow_pop_mask_grow_set_apply_threshold_notify_callback(item, value, event)
  846.     Panel_item    item;
  847.     int        value;
  848.     Event        *event;
  849. {
  850.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  851.     short    i;
  852.     
  853.     for (i = 0; i < 1; i++) {
  854.         
  855.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  856.  
  857.         {
  858.             if(grow.apply_thresholds) {
  859.                 grow.apply_thresholds = FALSE;
  860.                 xv_set(Mask_grow_pop_mask_grow->set_threshold_max,
  861.                     PANEL_INACTIVE, TRUE,
  862.                     NULL);
  863.                 xv_set(Mask_grow_pop_mask_grow->set_threshold_min,
  864.                     PANEL_INACTIVE, TRUE,
  865.                     NULL);
  866.             }
  867.             else {
  868.                 grow.apply_thresholds = TRUE;
  869.                 xv_set(Mask_grow_pop_mask_grow->set_threshold_max,
  870.                     PANEL_INACTIVE, FALSE,
  871.                     NULL);
  872.                 xv_set(Mask_grow_pop_mask_grow->set_threshold_min,
  873.                     PANEL_INACTIVE, FALSE,
  874.                     NULL);
  875.             }
  876.         }
  877.         
  878.         /* gxv_end_connections */
  879.  
  880.         value >>= 1;
  881.     }
  882. }
  883.  
  884. /*
  885.  * Notify callback function for `grow_threshold_max'.
  886.  */
  887. void
  888. mask_grow_pop_mask_grow_grow_threshold_max_notify_callback(item, value, event)
  889.     Panel_item    item;
  890.     int        value;
  891.     Event        *event;
  892. {
  893.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  894.     
  895.     
  896.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  897.     /* gxv_end_connections */
  898.  
  899. }
  900.  
  901. /*
  902.  * Notify callback function for `grow_threshold_min'.
  903.  */
  904. void
  905. mask_grow_pop_mask_grow_grow_threshold_min_notify_callback(item, value, event)
  906.     Panel_item    item;
  907.     int        value;
  908.     Event        *event;
  909. {
  910.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  911.     
  912.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  913.     /* gxv_end_connections */
  914.  
  915. }
  916.  
  917. /*
  918.  * Notify callback function for `set_apply_gradient'.
  919.  */
  920. void
  921. mask_grow_pop_mask_grow_set_apply_gradient_notify_callback(item, value, event)
  922.     Panel_item    item;
  923.     int        value;
  924.     Event        *event;
  925. {
  926.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  927.     short    i;
  928.     
  929.     for (i = 0; i < 1; i++) {
  930.         
  931.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  932.  
  933.         {
  934.             if(grow.apply_gradient) {
  935.                 grow.apply_gradient = FALSE;
  936.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_radius,
  937.                     PANEL_INACTIVE, TRUE,
  938.                     NULL);
  939.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_max,
  940.                     PANEL_INACTIVE, TRUE,
  941.                     NULL);
  942.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_min,
  943.                     PANEL_INACTIVE, TRUE,
  944.                     NULL);
  945.             }
  946.             else {
  947.                 grow.apply_gradient = TRUE;
  948.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_radius,
  949.                     PANEL_INACTIVE, FALSE,
  950.                     NULL);
  951.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_max,
  952.                     PANEL_INACTIVE, FALSE,
  953.                     NULL);
  954.                 xv_set(Mask_grow_pop_mask_grow->set_gradient_min,
  955.                     PANEL_INACTIVE, FALSE,
  956.                     NULL);
  957.             }
  958.         }
  959.         
  960.         /* gxv_end_connections */
  961.  
  962.         value >>= 1;
  963.     }
  964. }
  965.  
  966. /*
  967.  * Notify callback function for `set_gradient_radius'.
  968.  */
  969. void
  970. mask_grow_pop_mask_grow_set_gradient_radius_notify_callback(item, value, event)
  971.     Panel_item    item;
  972.     int        value;
  973.     Event        *event;
  974. {
  975.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  976.     
  977.     
  978.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  979.  
  980.     {
  981.         grow.gradient_rad = value;
  982.         
  983.     }
  984.     
  985.     /* gxv_end_connections */
  986.  
  987. }
  988.  
  989. /*
  990.  * Notify callback function for `set_gradient_max'.
  991.  */
  992. void
  993. mask_grow_pop_mask_grow_set_gradient_max_notify_callback(item, value, event)
  994.     Panel_item    item;
  995.     int        value;
  996.     Event        *event;
  997. {
  998.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  999.     
  1000.     
  1001.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1002.  
  1003.     {
  1004.         grow.gradient_max = value;
  1005.         if(value < grow.gradient_min) {
  1006.             grow.gradient_min = value;
  1007.             xv_set(Mask_grow_pop_mask_grow->set_gradient_min,
  1008.                 PANEL_VALUE, value,
  1009.                 NULL);
  1010.         }
  1011.     }
  1012.     
  1013.     /* gxv_end_connections */
  1014.  
  1015. }
  1016.  
  1017. /*
  1018.  * Notify callback function for `set_gradient_min'.
  1019.  */
  1020. void
  1021. mask_grow_pop_mask_grow_set_gradient_min_notify_callback(item, value, event)
  1022.     Panel_item    item;
  1023.     int        value;
  1024.     Event        *event;
  1025. {
  1026.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1027.     
  1028.     
  1029.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1030.  
  1031.     {
  1032.         grow.gradient_min = value;
  1033.         if(value > grow.gradient_max) {
  1034.             grow.gradient_max = value;
  1035.             xv_set(Mask_grow_pop_mask_grow->set_gradient_max,
  1036.                 PANEL_VALUE, value,
  1037.                 NULL);
  1038.         }
  1039.     }
  1040.     
  1041.     /* gxv_end_connections */
  1042.  
  1043. }
  1044.  
  1045. /*
  1046.  * Notify callback function for `set_apply_bridge'.
  1047.  */
  1048. void
  1049. mask_grow_pop_mask_grow_set_apply_bridge_notify_callback(item, value, event)
  1050.     Panel_item    item;
  1051.     int        value;
  1052.     Event        *event;
  1053. {
  1054.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1055.     short    i;
  1056.     
  1057.     for (i = 0; i < 1; i++) {
  1058.         
  1059.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1060.  
  1061.         {
  1062.             if(grow.apply_bridge) {
  1063.                 grow.apply_bridge = FALSE;
  1064.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_distance,
  1065.                     PANEL_INACTIVE, TRUE,
  1066.                     NULL);
  1067.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_max,
  1068.                     PANEL_INACTIVE, TRUE,
  1069.                     NULL);
  1070.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_min,
  1071.                     PANEL_INACTIVE, TRUE,
  1072.                     NULL);
  1073.             }
  1074.             else {
  1075.                 grow.apply_bridge = TRUE;
  1076.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_distance,
  1077.                     PANEL_INACTIVE, FALSE,
  1078.                     NULL);
  1079.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_max,
  1080.                     PANEL_INACTIVE, FALSE,
  1081.                     NULL);
  1082.                 xv_set(Mask_grow_pop_mask_grow->set_bridge_min,
  1083.                     PANEL_INACTIVE, FALSE,
  1084.                     NULL);
  1085.             }
  1086.         }
  1087.         
  1088.         /* gxv_end_connections */
  1089.  
  1090.         value >>= 1;
  1091.     }
  1092. }
  1093.  
  1094. /*
  1095.  * Notify callback function for `set_bridge_distance'.
  1096.  */
  1097. void
  1098. mask_grow_pop_mask_grow_set_bridge_distance_notify_callback(item, value, event)
  1099.     Panel_item    item;
  1100.     int        value;
  1101.     Event        *event;
  1102. {
  1103.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1104.     
  1105.     
  1106.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1107.  
  1108.     {
  1109.         grow.bridge_dist = value;
  1110.     }
  1111.     
  1112.     /* gxv_end_connections */
  1113.  
  1114. }
  1115.  
  1116. /*
  1117.  * Notify callback function for `set_bridge_max'.
  1118.  */
  1119. void
  1120. mask_grow_pop_mask_grow_set_bridge_max_notify_callback(item, value, event)
  1121.     Panel_item    item;
  1122.     int        value;
  1123.     Event        *event;
  1124. {
  1125.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1126.     
  1127.     
  1128.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1129.  
  1130.     {
  1131.         grow.bridge_max = value;
  1132.         if(value < grow.bridge_min) {
  1133.             grow.bridge_min = value;
  1134.             xv_set(Mask_grow_pop_mask_grow->set_bridge_min,
  1135.                 PANEL_VALUE, value,
  1136.                 NULL);
  1137.         }
  1138.     }
  1139.     
  1140.     /* gxv_end_connections */
  1141.  
  1142. }
  1143.  
  1144. /*
  1145.  * Notify callback function for `set_bridge_min'.
  1146.  */
  1147. void
  1148. mask_grow_pop_mask_grow_set_bridge_min_notify_callback(item, value, event)
  1149.     Panel_item    item;
  1150.     int        value;
  1151.     Event        *event;
  1152. {
  1153.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1154.     
  1155.     
  1156.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1157.  
  1158.     {
  1159.         grow.bridge_min = value;
  1160.         if(value > grow.bridge_max) {
  1161.             grow.bridge_max = value;
  1162.             xv_set(Mask_grow_pop_mask_grow->set_bridge_max,
  1163.                 PANEL_VALUE, value,
  1164.                 NULL);
  1165.         }
  1166.     }
  1167.     
  1168.     /* gxv_end_connections */
  1169.  
  1170. }
  1171.  
  1172. /*
  1173.  * Notify callback function for `set_extent'.
  1174.  */
  1175. void
  1176. mask_grow_pop_mask_grow_set_extent_notify_callback(item, value, event)
  1177.     Panel_item    item;
  1178.     int        value;
  1179.     Event        *event;
  1180. {
  1181.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1182.     
  1183.     
  1184.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1185.  
  1186.     if (value == 2)
  1187.     {
  1188.         grow.extent = GROW_ALL;
  1189.     }
  1190.     
  1191.     if (value == 1)
  1192.     {
  1193.         xv_set(Mask_grow_pop_mask_grow->beg_frame, PANEL_INACTIVE, FALSE, NULL);
  1194.     }
  1195.     
  1196.     if (value == 0)
  1197.     {
  1198.         xv_set(Mask_grow_pop_mask_grow->beg_frame, PANEL_INACTIVE, TRUE, NULL);
  1199.     }
  1200.     
  1201.     if (value == 2)
  1202.     {
  1203.         xv_set(Mask_grow_pop_mask_grow->beg_frame, PANEL_INACTIVE, TRUE, NULL);
  1204.     }
  1205.     
  1206.     if (value == 1)
  1207.     {
  1208.         xv_set(Mask_grow_pop_mask_grow->end_frame, PANEL_INACTIVE, FALSE, NULL);
  1209.     }
  1210.     
  1211.     if (value == 0)
  1212.     {
  1213.         xv_set(Mask_grow_pop_mask_grow->end_frame, PANEL_INACTIVE, TRUE, NULL);
  1214.     }
  1215.     
  1216.     if (value == 2)
  1217.     {
  1218.         xv_set(Mask_grow_pop_mask_grow->end_frame, PANEL_INACTIVE, TRUE, NULL);
  1219.     }
  1220.     
  1221.     if (value == 0)
  1222.     {
  1223.         grow.extent = GROW_FRAME;
  1224.     }
  1225.     
  1226.     if (value == 1)
  1227.     {
  1228.         grow.extent = GROW_BEG_TO_END;
  1229.         region.beg_frame = win[grow.swin].f;
  1230.         region.end_frame = win[grow.swin].f;
  1231.         xv_set(Mask_grow_pop_mask_grow->beg_frame,
  1232.             PANEL_VALUE, region.beg_frame,
  1233.             NULL);
  1234.         xv_set(Mask_grow_pop_mask_grow->end_frame,
  1235.             PANEL_VALUE, region.end_frame,
  1236.             NULL);
  1237.     }
  1238.     
  1239.     /* gxv_end_connections */
  1240.  
  1241. }
  1242.  
  1243. /*
  1244.  * Notify callback function for `but_defaults_grow'.
  1245.  */
  1246. void
  1247. mask_grow_pop_mask_grow_but_defaults_grow_notify_callback(item, event)
  1248.     Panel_item    item;
  1249.     Event        *event;
  1250. {
  1251.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1252.     
  1253.     
  1254.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1255.     /* gxv_end_connections */
  1256.  
  1257. }
  1258.  
  1259. /*
  1260.  * Notify callback function for `but_defaults_options'.
  1261.  */
  1262. void
  1263. mask_grow_pop_options_but_defaults_options_notify_callback(item, event)
  1264.     Panel_item    item;
  1265.     Event        *event;
  1266. {
  1267.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1268.     
  1269.     
  1270.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1271.  
  1272.     {
  1273.         grow.swin = WIN_PAINT;
  1274.         grow.seed_pt_src = SEED_EDIT;
  1275.         grow.overwrite = TRUE;
  1276.         grow.disp_growth = DISP_ALL;
  1277.         grow.speed = 2000;
  1278.         
  1279.         /* reset ui fields */
  1280.         xv_set(Mask_grow_pop_options->set_starting_window,
  1281.             PANEL_VALUE, grow.swin,
  1282.             NULL);
  1283.         xv_set(Mask_grow_pop_options->set_seed_points_source,
  1284.             PANEL_VALUE, grow.seed_pt_src,
  1285.             NULL);
  1286.         xv_set(Mask_grow_pop_options->set_overwrite,
  1287.             PANEL_VALUE, grow.overwrite,
  1288.             NULL);
  1289.         xv_set(Mask_grow_pop_options->set_display_growth,
  1290.             PANEL_VALUE, grow.disp_growth,
  1291.             NULL);
  1292.         xv_set(Mask_grow_pop_options->set_growth_speed,
  1293.             PANEL_VALUE, grow.speed,
  1294.             NULL);
  1295.     }
  1296.     
  1297.     /* gxv_end_connections */
  1298.  
  1299. }
  1300.  
  1301. /*
  1302.  * Notify callback function for `set_threshold_max'.
  1303.  */
  1304. void
  1305. mask_grow_pop_mask_grow_set_threshold_max_notify_callback(item, value, event)
  1306.     Panel_item    item;
  1307.     int        value;
  1308.     Event        *event;
  1309. {
  1310.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1311.     
  1312.     
  1313.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1314.  
  1315.     {
  1316.         grow.threshold_max = value;
  1317.         if(value < grow.threshold_min) {
  1318.             grow.threshold_min = value;
  1319.             xv_set(Mask_grow_pop_mask_grow->set_threshold_min,
  1320.                 PANEL_VALUE, value,
  1321.                 NULL);
  1322.         }
  1323.     }
  1324.     
  1325.     /* gxv_end_connections */
  1326.  
  1327. }
  1328.  
  1329. /*
  1330.  * Notify callback function for `set_threshold_min'.
  1331.  */
  1332. void
  1333. mask_grow_pop_mask_grow_set_threshold_min_notify_callback(item, value, event)
  1334.     Panel_item    item;
  1335.     int        value;
  1336.     Event        *event;
  1337. {
  1338.     mask_grow_pop_mask_grow_objects *ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1339.     
  1340.     
  1341.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1342.  
  1343.     {
  1344.         grow.threshold_min = value;
  1345.         if(value > grow.threshold_max) {
  1346.             grow.threshold_max = value;
  1347.             xv_set(Mask_grow_pop_mask_grow->set_threshold_max,
  1348.                 PANEL_VALUE, value,
  1349.                 NULL);
  1350.         }
  1351.     }
  1352.     
  1353.     /* gxv_end_connections */
  1354.  
  1355. }
  1356.  
  1357. /*
  1358.  * Notify callback function for `set_grow_interractive'.
  1359.  */
  1360. void
  1361. mask_grow_pop_options_set_grow_interractive_notify_callback(item, value, event)
  1362.     Panel_item    item;
  1363.     int        value;
  1364.     Event        *event;
  1365. {
  1366.     mask_grow_pop_options_objects *ip = (mask_grow_pop_options_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1367.     
  1368.     
  1369.     /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1370.  
  1371.     if (value == 1)
  1372.     {
  1373.         grow.interractive = FALSE;
  1374.     }
  1375.     
  1376.     if (value == 0)
  1377.     {
  1378.         grow.interractive = TRUE;
  1379.     }
  1380.     
  1381.     /* gxv_end_connections */
  1382.  
  1383. }
  1384.  
  1385. /*
  1386.  * Menu handler for `menu_set_grow_parameters (Default)'.
  1387.  */
  1388. Menu_item
  1389. mask_grow_menu_set_grow_parameters_item0_callback(item, op)
  1390.     Menu_item    item;
  1391.     Menu_generate    op;
  1392. {
  1393.     mask_grow_pop_mask_grow_objects * ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1394.     
  1395.     switch (op) {
  1396.     case MENU_DISPLAY:
  1397.         break;
  1398.  
  1399.     case MENU_DISPLAY_DONE:
  1400.         break;
  1401.  
  1402.     case MENU_NOTIFY:
  1403.         
  1404.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1405.  
  1406.         {
  1407.             if(grow.apply_thresholds) {
  1408.                 grow.threshold_min = 0;
  1409.                 grow.threshold_max = 255;
  1410.             }
  1411.             if(grow.apply_gradient) {
  1412.                 grow.gradient_rad = 1;
  1413.                 grow.gradient_min = 0;
  1414.                 grow.gradient_max = 100;
  1415.             }
  1416.             if(grow.apply_bridge) {
  1417.                 grow.bridge_dist = 5;
  1418.                 grow.bridge_min = 1;
  1419.                 grow.bridge_max = 8;
  1420.             }
  1421.             
  1422.             /* reset ui fields */
  1423.             set_grow_params();
  1424.         }
  1425.         
  1426.         /* gxv_end_connections */
  1427.  
  1428.         break;
  1429.  
  1430.     case MENU_NOTIFY_DONE:
  1431.         break;
  1432.     }
  1433.     return item;
  1434. }
  1435.  
  1436. /*
  1437.  * Menu handler for `menu_set_grow_parameters (From edit mask)'.
  1438.  */
  1439. Menu_item
  1440. mask_grow_menu_set_grow_parameters_item1_callback(item, op)
  1441.     Menu_item    item;
  1442.     Menu_generate    op;
  1443. {
  1444.     mask_grow_pop_mask_grow_objects * ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1445.     
  1446.     switch (op) {
  1447.     case MENU_DISPLAY:
  1448.         break;
  1449.  
  1450.     case MENU_DISPLAY_DONE:
  1451.         break;
  1452.  
  1453.     case MENU_NOTIFY:
  1454.         
  1455.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1456.  
  1457.         {
  1458.             auto_set_grow_params(SEED_EDIT);
  1459.         }
  1460.         
  1461.         /* gxv_end_connections */
  1462.  
  1463.         break;
  1464.  
  1465.     case MENU_NOTIFY_DONE:
  1466.         break;
  1467.     }
  1468.     return item;
  1469. }
  1470.  
  1471. /*
  1472.  * Menu handler for `menu_set_grow_parameters (From point list)'.
  1473.  */
  1474. Menu_item
  1475. mask_grow_menu_set_grow_parameters_item2_callback(item, op)
  1476.     Menu_item    item;
  1477.     Menu_generate    op;
  1478. {
  1479.     mask_grow_pop_mask_grow_objects * ip = (mask_grow_pop_mask_grow_objects *) xv_get(item, XV_KEY_DATA, INSTANCE);
  1480.     
  1481.     switch (op) {
  1482.     case MENU_DISPLAY:
  1483.         break;
  1484.  
  1485.     case MENU_DISPLAY_DONE:
  1486.         break;
  1487.  
  1488.     case MENU_NOTIFY:
  1489.         
  1490.         /* gxv_start_connections DO NOT EDIT THIS SECTION */
  1491.  
  1492.         {
  1493.             auto_set_grow_params(SEED_PTS);
  1494.         }
  1495.         
  1496.         /* gxv_end_connections */
  1497.  
  1498.         break;
  1499.  
  1500.     case MENU_NOTIFY_DONE:
  1501.         break;
  1502.     }
  1503.     return item;
  1504. }
  1505.